package org.seedltd.upms.service.sys;

import org.seedltd.core.base.BaseCacheService;
import org.seedltd.core.base.BasePage;
import org.seedltd.upms.model.sys.entity.SysDict;
import org.seedltd.upms.model.sys.form.SysDictForm;
import org.seedltd.upms.model.sys.form.SysDictSearchForm;
import org.seedltd.upms.model.sys.vo.DictEnumVO;
import org.seedltd.upms.model.sys.vo.SysDictVO;

import java.util.List;

/**
 * 字典管理带缓存业务接口
 * 
 * @author laizuan
 * @since 2021/07/24
 * @version 1.0
 */
public interface SysDictService extends BaseCacheService<SysDict, SysDictForm> {

    /**
     * 翻页查询
     *
     * @param searchForm
     *            搜索条件
     */
    BasePage<SysDictVO> page(SysDictSearchForm searchForm);

    /**
     * 更据类型获取简洁的字典数据对象。带缓存
     * @param type 字典类型
     * @return
     */
    List<DictEnumVO> listSimpleByType(String type);

    /**
     * 删除字典
     * @param type 字典类型
     * @param id 字典主键
     * @return
     */
    boolean delete(String type, Long id);

    /**
     * 删除缓存，不做其他操作
     * @param type 字典类型
     */
    void clearCache(String type);

    /**
     * 获取字典数据
     * @param type 字典类型
     * @param value1 字典类型值
     * @return
     */
    DictEnumVO findByTypeAndValue(String type, String value1);
}